package com.hmily.dubbo.consumer.stub;

import com.hmily.dubbo.api.UserValidationFacade;
import com.hmily.dubbo.api.bean.ValidateUserInfo;

/**
 * <h1>用户验证的接口存根。</h1>
 *
 * @author hmilyylimh
 * ^_^
 * @version 0.0.1
 * ^_^
 * @date 2021-11-07
 */
public class UserValidationFacadeStub implements UserValidationFacade {

    private final UserValidationFacade userValidationFacade;

    public UserValidationFacadeStub(UserValidationFacade userValidationFacade) {
        this.userValidationFacade = userValidationFacade;
    }

    @Override
    public ValidateUserInfo validateUser(ValidateUserInfo userInfo) {
        // 可以写一些代码进行业务逻辑校验
        String name = userInfo.getName();
        if(name.equals("hmily")){
            // 对于发现参数异常的话，需要做返回，或者抛异常之类的，这个依据大家的业务逻辑而定
            // 但是，我这里为了做测试验证的话，我就将入参也干脆直接返回，只是在返回的参数里面多添加了一些信息而已
            userInfo.setName("Forbidden 'hmily' passed.");
            return userInfo;
        }

        return userValidationFacade.validateUser(userInfo);
    }
}